Systems and methods of assisted gps

ABSTRACT

Embodiments of an improved assisted global positioning system (GPS) method and system are described. Wireless access points send assistance data to GPS receivers that are integrated into cellular chipsets and other chipsets. The access points may also act as fixed location references for differential GPS (DGPS) mobile stations. Errors caused by multipath travel of the GPS signals are reduced by using fixed location reference receivers.

CROSS REFERENCE TO RELATED APPLICATIONS

Not applicable.

BACKGROUND

The present invention relates to assisted global positioning system (GPS) devices, and in particular, to GPS devices that include wireless communications capability.

Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.

Global positioning system (GPS) receivers can provide location information by communicating with satellites that orbit the earth. Such GPS information may provide positioning accuracies that are superior to alternative technologies such as cellular's cell-ID. A GPS receiver typically locates four or more satellites and calculates the distance to each satellite by timing a radio signal from each satellite to the receiver. In order to use this timing information the receiver, has to know the location of the satellites. Since the satellites travel in known orbit paths, the GPS receiver can receive and store the ephemeris and/or almanac that tells the receiver the location of the satellites at various times. Slight variations on the positions of the satellites caused by planetary gravitational pulls are also monitored by the Department of Defense and transmitted by the satellites themselves as part of their signals to the receivers.

A GPS receiver uses the distance/timing information and the location of the satellites to calculate its own position. The distance from each satellite limits the location of the GPS receiver to a sphere centered on the satellite location with a radius equal to the distance to the satellite. The intersection of the four spheres (one for each satellite) provides the location of the GPS receiver.

In order for the GPS receiver to measure the travel time between the satellite signal and the receiver, the satellite transmits a pseudo-random code pattern. The receiver also starts playing the same pattern. After the satellite signal reaches the receiver, it exhibits a delay lag compared to the receiver pattern. This delay represents the signal travel time. Both the satellite and the receiver must use the same clock time in order to measure this delay. The satellites use expensive atomic clocks, whereas the receivers use inexpensive quartz clocks that are recalibrated at frequent time intervals. The receiver looks at signals from four or more different satellites. It then draws the corresponding four or more spheres. If there is timing inaccuracy for the receiver's clock, the spheres will not intersect at a single point since they will all be offset by the same time error. The receiver can then adjust its clock until the spheres intersect at a single point, thereby synchronizing with the atomic clocks of the satellites.

GPS receivers may be categorized into two types, autonomous GPS receivers and assisted GPS (A-GPS) receivers. These types are detailed below.

Autonomous GPS receivers receive information from orbiting satellites and perform the calculations themselves in order to locate their position. The information they download from the satellites includes satellite ID, almanac, clock corrections and ephemeris. They use this information along with their measured pseudorange data to calculate position and velocity. Autonomous GPS systems, however, have relatively low sensitivity and cannot obtain positions in low signal environments. They also have large initial satellite signal acquisition times, since they need to decode the data received from the satellites.

Assisted GPS systems resolve the sensitivity and acquisition time limitations of autonomous GPS receivers by using assistance data from a networked and typically AC powered assistance server. The mobile device's assisted GPS receiver measures pseudoranges and Dopplers, and obtains assistance data from the assistance server. The assistance data from the server can include satellite ID, almanac, clock correction, ephemeris, approximate time, and approximate location.

Assisted GPS systems are categorized into two classes: mobile-based A-GPS and mobile A-GPS (i.e. mobile-assisted A-GPS). A mobile-based A-GPS receiver measures pseudoranges and Dopplers, receives the assistance data from the assistance server, and performs the position calculations itself. A mobile A-GPS receiver, on the other hand, uses the more powerful assistance server to perform some of the calculations for determining its position, thereby saving the mobile device's limited battery and CPU resources. For example, the mobile A-GPS receiver can calculate the distance to the satellites from the satellite signals and transmit these to a cell base station tower, which in turn forwards them to the assistance server that performs the position calculations. The assistance server can then send the calculated position information back to the mobile A-GPS receiver (or in the case of emergencies, to a 911 dispatcher).

The accuracy of A-GPS is limited by variations in the speed of the radio waves of the satellites as they travel through the earth's atmosphere. Differential GPS (DGPS) reduces these errors and all other common errors (e.g., satellite clock error) by using a stationary receiver with known coordinates. This receiver compares its computed position with its known position to calculate inaccuracies caused by atmospheric effects and other common errors in that area. It then broadcasts correction data to nearby DGPS receivers, making them more accurate than standard GPS receivers.

One problem in many existing GPS systems results from multipath signal interference. Multipath signal interference occurs when the GPS signals from the satellite are reflected by objects around the GPS receiver, such as buildings. In areas with many buildings, such as city centers, multipath signal interference results in significant position errors. There is a need for GPS systems that reduce multipath signal interference.

Similar problems include shadowing and fading. Shadowing can be caused by a large obstruction that is along the main signal path between the transmitter and the receiver. Shadowing can produce amplitude and phase changes on a carrier modulated transmitted signal. Fading also describes the distortion that a carrier-modulated signal undergoes as it travels from the transmitter to the receiver. Multipath propagation is one of the main causes of fading since it results in the receiver receiving and superimposing multiple copies of the transmitted signal, each traveling along different paths and experiencing different phase shifts, attenuations and delays. There is therefore a need for GPS systems that reduce shadowing and fading.

Thus, there is a need for improved GPS systems. The present invention solves these and other problems by providing methods and systems for assisted GPS devices.

SUMMARY

Embodiments of the present invention improve position determination using GPS signals. In one embodiment the present invention includes a method of position determination using GPS signals. The method includes receiving GPS information from GPS satellites and receiving assistance data from access points. The method further includes computing a combined assistance data from the assistance data. The method further includes computing a position based on the GPS information and the combined assistance data.

According to another embodiment of the present invention, a computer program may implement at least part of the method described above.

According to another embodiment of the present invention, a GPS device may implement at least part of the method described above.

According to another embodiment of the present invention, an assistance server may implement at least part of the method described above.

According to another embodiment of the present invention, a GPS-equipped mobile station has a wireless radio to determine its position by combining the information from its GPS receiver with information from other wireless positioning data. The wireless radio may implement various wireless protocols such as cellular, WLAN, Bluetooth®, RFID, UWB, ZigBee®, etc. The wireless positioning data may be obtained with triangulation schemes that use time of arrival or phase with wireless technologies such as WLAN, Bluetooth®, RFID, etc.

According to another embodiment of the present invention, by combining positional information from multiple sources the effects of shadowing, fading and multipath interference are reduced.

The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an assisted GPS system according to an embodiment of the present invention.

FIG. 2 is a flowchart of a method of position determination using GPS signals according to an embodiment of the present invention.

FIG. 3 is a block diagram of a GPS device according to an embodiment of the present invention.

FIG. 4 is a block diagram of an access point according to an embodiment of the present invention.

FIG. 5 is a block diagram of an assistance server according to an embodiment of the present invention.

FIG. 6 is a block diagram of a combined GPS and wireless positioning system according to an embodiment of the present invention.

FIG. 7 is a block diagram of a combined GPS and wireless positioning system according to an embodiment of the present invention.

FIG. 8 is a block diagram of a combined GPS and wireless positioning system 800 according to an embodiment of the present invention.

FIG. 9 is a block diagram of a mobile station according to an embodiment of the present invention.

FIG. 10 is a block diagram of access points and related structure according to an embodiment of the present invention.

DETAILED DESCRIPTION

Described herein are techniques for GPS position determination. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.

One of the aspects of certain embodiments of the present invention is extending DGPS so that instead of requiring separate dedicated DGPS stations, it can use existing wireless infrastructure such as wireless local area networks (WLANs), WiMax networks, Bluetooth® networks, and cellular networks. For example, instead of using a dedicated stationary receiver with known coordinates, certain embodiments of the present invention use existing WLAN access points since they too have fixed known coordinates. Wireless access points can also perform some of the functionality of an assistance server for A-GPS receivers, such as providing assistance data and performing position calculations. It should be noted that DGPS can also be viewed as a form of assisted GPS where the assistance data includes amongst other things range error corrections.

The deployment of wireless access points in towns and cities is increasing. These access points may be WLAN, WiMax, as well as other wireless technologies, and may be equipped with GPS devices. Such access points may have assistance servers running on them (or can communicate with networked assistance servers) that download information from orbiting satellites and provide assistance data to A-GPS receivers

The information flow for both mobile-based and mobile A-GPS using access points is detailed below. In the case of mobile-based A-GPS, the access points improve the start-up times of A-GPS receivers as well as DGPS receivers by sending information (satellite ID, almanac, clock correction, ephemeris, timing information, approximate location, and Doppler) to the receivers. In the case of mobile A-GPS, the access points can offload limited resource mobile A-GPS receivers by performing some of the position calculations or by forwarding the data onto the network for another networked assistance server to perform some of the calculations.

FIG. 1 is a block diagram of an assisted GPS system 100 according to an embodiment of the present invention. The assisted GPS system 100 includes a number of GPS satellites 110 a, 110 b, 110 c and 110 d (collectively 110), a GPS device 120, a number of access points 130 a, 130 b and 130 c (collectively 130), a network 140, and an assistance server 150. The GPS satellites 110 are satellites that transmit GPS information.

The GPS device 120 may be a mobile device that receives the GPS information. The GPS device 120 may be a standalone device, or it may be part of another device such as a cellular telephone, vehicle navigation system, etc. The GPS device 120 also exchanges information with the access points 130.

The access points 130 may be access points for WLAN, WiMax, Bluetooth® or cellular systems. The access points 130 interface the GPS device 120 with the network 140. For example, if the access point 130 a is a WLAN access point and the GPS device 120 includes a WLAN connection, the GPS device has access to the network 140 using its WLAN connection via the access point 130 a. The access points 130 are generally located at fixed locations. In addition, the access points 130 receive the GPS information from the satellites 110, generate differential GPS information, and transmit the differential GPS information to the GPS device 120.

The network 140 may be a computer network, a telephone network, etc. The network 140 connects the access points 130 with other devices or networks. According to one embodiment, the network 140 connects to the internet.

The assistance server 150 is a device that performs assisted GPS functionality. The assistance server 150 is optional in the assisted GPS system 100. If the GPS device 120 performs all its GPS position calculations itself, it has no need for an assistance server. The assistance server 150 may be a component of, or be co-located with, one of the access points 130. Alternatively, one of the access points 130 may be a component of the assistance server 150.

FIG. 2 is a flowchart of a method 200 of position determination using GPS signals according to an embodiment of the present invention. The method 200 may be performed by the GPS system 100 (see FIG. 1). At least parts of the method 200 may be implemented as a computer program.

In step 210, the GPS information is received. For example, in the GPS system 100, the GPS satellites 110 transmit the GPS information. The GPS device 120 and the access points 130 receive the GPS information.

In step 220, the assistance data is computed. For example, in the GPS system 100, each of the access points 130 computes assistance data based on a comparison between its position calculated from the GPS information and its known position. Since the access points 130 may be installed at fixed locations, the difference between their known position and the calculated GPS position gives an indication of the range errors to be included as differential GPS information as the assistance data.

In step 230, the assistance data is received. For example, in the GPS system 100, the GPS device 120 receives the assistance data from the access points 130. The GPS device 120 may transmit a request for the assistance data, or it may receive assistance data that is broadcast by each of the access points 130. The GPS device 120 may receive assistance data from two or more of the access points 130, with others of the access points 130 being out of range.

In step 240, the assistance data is selected. Some or all of the assistance data received in step 230 may be selected for further processing. The selection may be based on a threshold criterion. The threshold criterion may be based on a physical characteristic of the received signal containing the assistance data, such as power level or phase differential.

For example, in the GPS system 100, the GPS device 120 may perform the selection of the assistance data. Assume the GPS device 120 receives assistance data from the access point 130 a at a relative power level of 1.0, assistance data from the access point 130 b at a relative power level of 0.9, and assistance data from the access point 130 c at a relative power level of 0.5. Further assume that the selection threshold is 0.6. In such a case, the GPS device 120 may select the assistance data from the access points 130 a and 130 b (and exclude the assistance data from the access point 130 c from the selection). The threshold criterion may also be based on other information known to the access points 130. For example, if the access point 130 a knows it is surrounded by buildings and is thus susceptible to multipath interference, the access point 130 a may supply this information to the GPS device 120 as part of the assistance data. The GPS device may then apply this information, for example as an adjustment factor, to the threshold information.

As another example, instead of the GPS device 120 performing the selection, the assistance server 150 may perform the selection. The GPS device 120 may send the assistance data and the threshold information to the assistance server 150 as part of a request to perform assistance processing. The assistance server 150 then performs the selection as described above and may send the selected assistance data to the GPS device 120. The assistance server 150 can use additional information in performing the selection. This additional information may be based on additional physical attributes of the access points 130 known to the assistance server 150 (or provided to the assistance server 150 by the access points 130). For example, the assistance server 150 may know that the access point 130 a is surrounded by buildings and is thus susceptible to multipath interference. In such a case, the assistance server 150 may apply an adjustment factor to the threshold information. As a result, the assistance data from the access point 130 a may not be included in the selection.

In step 250, the combined assistance data is computed from the selected assistance data. There are a number of ways to compute the combined assistance data. One way is to compute an average of the selected assistance data.

Another way is to compute a weighted average of the selected assistance data. There are various ways to assign weights to the assistance data. One way to assign weights is based on the relative distance between the devices exchanging the assistance data, where closer devices receive more weight. The relative distance may be determined based on a physical characteristic of a received signal (such as the signal containing the assistance data), such as the power level or phase differential. For example, to determine the phase differential, the phase of the received signal may be compared to the phase of a pilot signal. The phase differential is then indicative of the distance between devices.

An example of a weighted average of assisted data based on distance is as follows. Consider the case where there are four access points: AP₁, AP₂, AP₃, and AP₄ whose distances from a mobile station are d₁, d₂, d₃ and d₄, respectively. Suppose that the differential correction term provided by access points AP₁, AP₂, AP₃, and AP₄ are X₁, X₂, X₃ and X₄, respectively. Then the distance-based weighted average differential correction term X is:

$X = \frac{\left( {{\alpha_{1}X_{1}} + {\alpha_{2}X_{2}} + {\alpha_{3}X_{3}} + {\alpha_{4}X_{4}}} \right)}{\left( {\alpha_{1} + \alpha_{2} + \alpha_{3} + \alpha_{4}} \right)}$

Where α₁, α₂, α₃, and α₄ are the normalized weights for AP₁, AP₂, AP₃, and AP₄ respectively and are as follows:

${\alpha_{1} = 1},{\alpha_{2} = \frac{d_{1}}{d_{2}}},{\alpha_{3} = {{\frac{d_{1}}{d_{3}}\mspace{14mu} {and}\mspace{14mu} \alpha_{4}} = \frac{d_{1}}{d_{4}}}}$

The distances can be calculated from signal power or phase measurements.

The assigned weight may be linear, inverse linear, square, inverse square, a combination thereof, etc., depending upon the physical attributes of the received signal.

For example, in the GPS system 100, the GPS device 120 may compute the combined assistance data. The GPS device 120 may apply a weight to the selected assistance data based on the physical characteristics of the signals received from the corresponding access points 130.

As another example, instead of the GPS device 120 performing the computation, the assistance server 150 may perform the computation. If the assistance server 150 did not select the assistance data, the GPS device 120 may send the selected assistance data to the assistance server 150 as part of a request to perform assistance processing. The GPS device 120 may also send to the assistance server 150 physical information about the signals received from the corresponding access points 130 so that the assistance server 150 may determine the weights, or the GPS device 120 may determine the weights itself and send the determined weight information (instead of the raw physical information) to the assistance server 150. The assistance server 150 then performs the computation as described above and may send the combined assistance data to the GPS device 120.

In step 260, the position is computed using the GPS information and the combined assistance data. For example, in the GPS system 100, the GPS device 120 may compute its position using the GPS information it has received from the satellites 110 and the combined assistance data. The GPS device 120 may then display the position information, provide it to a 911 service provider, etc.

As another example, instead of the GPS device 120 computing the position, the assistance server 150 may compute the position of the GPS device 120. The GPS device 120 may send the GPS information to the assistance server 150 as part of a request to perform assistance processing. The GPS device 120 may also send the combined assistance data if the assistance server 150 does not otherwise have it. The assistance server 150 then computes the position of the GPS device using the GPS information and the combined assistance data, and may transmit the position information to the GPS device 120. The assistance server 150 may also provide the position information to other entities (for example, 911 service providers) as desired.

FIG. 3 is a block diagram of a GPS device 300 according to an embodiment of the present invention. The GPS device 300 may be referred to as the mobile device and may be similar to the GPS device 120 (see FIG. 1). The GPS device 300 includes a processor 310, a memory 320, a GPS module 330, a Bluetooth® module 340, and a WLAN module 350.

The processor 310 generally controls the operation of the GPS device 300. The processor 310 may execute a computer program that implements at least part of the method 200.

The memory 320 generally stores various information used by the GPS device 300. Such information may include a computer program that implements at least part of the method 200.

The GPS module 330 generally receives GPS signals and processes the UPS signals to determine the position of the GPS device 300. The GPS module 330 may include assisted GPS functionality as described above.

The Bluetooth® module 340 communicates with an access point via the Bluetooth® protocol. According to other embodiments, the Bluetooth® module 340 may be replaced with another type of communications device, such as a WLAN module, a WiMax module or a cellular module.

The WLAN module 350 communicates with an access point via the WLAN protocol. According to other embodiments, the WLAN module 350 may be replaced with another type of communications device, such as a Bluetooth® module, a WiMax module or a cellular module. The GPS device 300 may only include one type of communications module, in which case the WLAN module 350 is an optional component.

The digital interface between the GPS module 330 and the WLAN module 350 or Bluetooth® module 340 in the GPS device 300 may be USB, DART, SPI, or I2C.

FIG. 4 is a block diagram of an access point 400 according to an embodiment of the present invention. The access point 400 may be referred to as the base station and may be similar to one of the access points 130 (see FIG. 1). The access point 400 includes a processor 410, a memory 420, a GPS module 430, a Bluetooth® module 440, and a WLAN module 450.

The processor 410 generally controls the operation of the access point 400. The processor 410 may execute a computer program that implements at least part of the method 200.

The memory 420 generally stores various information used by the access point 400. Such information may include a computer program that implements at least part of the method 200.

The GPS module 430 generally receives GPS signals and processes the GPS signals to determine the position of the access point 400. The GPS module 430 may include assisted GPS functionality as described above.

The Bluetooth® module 440 communicates with a mobile device via the Bluetooth® protocol. According to other embodiments, the Bluetooth® module 440 may be replaced with another type of communications device, such as a WLAN module, a WiMax module or a cellular module.

The WLAN module 450 communicates with a mobile device via the WLAN protocol. According to other embodiments, the WLAN module 450 may be replaced with another type of communications device, such as a Bluetooth® module, a WiMax module or a cellular module. The access point 400 may only include one type of communications module, in which case the WLAN module 450 is an optional component.

The digital interface between the GPS module 430 and the WLAN module 450 or Bluetooth® module 440 in the access point 400 may be USB, UART, SPI, or I2C.

FIG. 5 is a block diagram of an assistance server 500 according to an embodiment of the present invention. The assistance server 500 may be similar to the assistance server 150 (sec FIG. 1). The assistance server 500 includes a processor 510, a memory 520, and a communications module 530.

The processor 510 generally controls the operation of the assistance server 500. The processor 510 may execute a computer program that implements at least part of the method 200.

The memory 520 generally stores various information used by the assistance server 500. Such information may include a computer program that implements at least part of the method 200.

The communications module 530 generally links the assistance server 500 with the network 140.

More details of embodiments of the present invention are provided below.

As discussed above regarding the method 200, there are various options for embodiments of the GPS device 120 and the assistance server 150. According to one embodiment, the GPS device 120 combines the assistance data and computes its position using the GPS information and the combined assistance data. According to another embodiment, the assistance server 150 combines the assistance data, and GPS device 120 computes its position using the GPS information and the combined assistance data. According to another embodiment, the GPS device 120 combines the assistance data, and the assistance server 150 computes the position of the GPS device 120 using the GPS information and the combined assistance data. According to another embodiment, the assistance server 150 combines the assistance data and computes the position of the GPS device 120 using the GPS information and the combined assistance data. (Note that in the above descriptions of the embodiments, the details of the information transferred between the GPS device 120 and the assistance server 150 are omitted.)

Because the locations of wireless access points are fixed, they may also be used as reference receivers for DGPS receivers. For example, the GPS receiver of an access point may receive signals from all the satellites in its view and then compute its position. It may then compare its computed position with its known coordinates in order to calculate range errors (caused by atmospheric effects, satellite clock errors, etc) for each satellite. The access point may then send (with wireless and wired networking) correction data to nearby DGPS receivers to make them more accurate. This transmission may be broadcast at regular time intervals or whenever a DGPS receiver requests assistance data. The DGPS receivers may use the correction data to correct the satellite signals they are receiving in order to get more accurate position information. The access points may re-compute and re-broadcast the correction data at regular intervals in order to correct for changing atmospheric conditions. The closer a DGPS mobile station is to a reference access point, the more accurate its computed position may be. A DGPS mobile station may use the correction data from more than one access point to improve its accuracy even further.

DGPS systems may be categorized into two classes: mobile-based DGPS and mobile DGPS. If the DGPS receiver has limited processing or battery power, then mobile DGPS may be used where the DGPS receiver communicates with a more powerful networked assistance server and shares the tasks required to use correction data to calculate positions. For example, the DGPS receiver may calculate the distances to the satellites from the four satellite signals and may transmit these together with the correction data to a WLAN access point or cellular base station tower, which in turn forwards them to an assistance server that performs the position calculations. The assistance server can then use the network to send the calculated position back to the DGPS receiver or in the case of emergencies to a 911 dispatcher. The assistance server may or may not physically reside on the access points. The functionality of the assistance server may be physically inside the WLAN/WiMax access points or cellular base-station towers. Alternatively, if the mobile station has the computing power, it can perform the calculations itself as a mobile-based DGPS system.

The GPS receivers may be integrated into cellular chipsets such as CDMA and UMTS/GPS, as well as other wireless standards such as WLAN, Bluetooth®, UWB or combinations of them. The wireless access point has stored its absolute position information in its memory. It also may store any assistance data that it receives from satellites in its memory.

The GPS-equipped mobile station may also use wireless power control techniques to conserve its battery energy. For example, Bluetooth® communication has a shorter range than WLAN, but consumes significantly less power. Thus, a mobile-station that needs to conserve battery power may communicate with a nearby access point using its Bluetooth® module rather than WLAN (the base-station is also equipped with a Bluetooth® module). It may also use the transmit power control option of the 802.11 WLAN standard for conserving power in the uplink transmissions (from the mobile to the access point). Transmit power control within 802.11 allows the device to use the best transmission power level out of several available power levels.

After computing or receiving (from an assistance server) latitude, longitude and altitude positions, the mobile-based A-GPS receivers, mobile A-GPS receivers, mobile-based DGPS receivers or mobile DGPS receivers may superimpose their location onto maps that are stored in their memory. This improves the user interface for navigation by the user.

A GPS-equipped mobile station may switch between mobile-based A-GPS and mobile A-GPS configurations. Likewise, a DGPS-equipped mobile station may switch between mobile-based DGPS and mobile DGPS configurations. For example, a mobile-based A-GPS receiver that becomes resource-limited (CPU cycles, battery energy, etc.) may become mobile A-GPS and transfer its data to an assistance server for processing. The reverse is also true where a mobile A-GPS receiver that gains additional resource capacity (e.g., CPU availability) switches to a mobile-based A-GPS receiver and performs the position calculations itself.

In another embodiment, if the connection to an access point falls below a certain threshold or is lost altogether, then the mobile-station may switch to other reference access points. For example, it can switch from one WLAN access point to another WLAN access point, or it can handover from a WLAN access point to a WiMax access point or cellular base-station tower. This switching may be implemented using access point handover algorithms. In another approach, the mobile station may also use assistance data or reference correction data (for DGPS) from different access points that are nearby (WLAN, WiMax, cellular) in order to improve accuracy.

Besides the options for assigning weights to the assistance data as described above regarding step 250, another way to assign weights is by communications protocol. If the mobile device includes two types of communications modules, with one having a shorter range than the other, a higher weight may be assigned to the assistance data received via the shorter range protocol. For example, for the GPS device 300, the Bluetooth® module 340 has a shorter range than the WLAN module 350. The weight assigned to assistance data received via the Bluetooth® module 340 may be assigned a higher weight than that received via the WLAN module 350. In essence the weights are assigned based on physical attributes of the received signal (such as received power), which in turn can be related to the type of protocol used. For example, some protocols such as Bluetooth are typically for shorter range communication and hence can result in stronger received signal power than signals that travel longer distances, such as cellular signals.

Another source of error in DGPS systems is reflections of the satellite transmitted signals. These reflections or multipath interference cause delays that get translated into range errors when they are multiplied by the speed of light. Another aspect of certain embodiments of the present invention is to reduce the errors caused by multipath travel by using several nearby fixed location reference receivers. These reference receivers may be selected either by the GPS receiver itself or by the assistance server. The selection can be based on certain criteria such as received signal strength by the GPS receiver or the relative geometry of the reference receivers. Since different reference receivers will experience different multipath travel delay characteristics, the result of combining and optimizing the resulting calculated position coordinates or correction terms will improve accuracy of DGPS systems. This combing and optimization algorithm may be performed on a server that may or may not reside on one of the fixed location reference receivers. Yet another approach is to use a nearby access point as a reference receiver since it experiences similar multipath reflections as the DGPS mobile station. Since the location of the access point is known, it can correct for atmospheric effects, multipath errors, and other common errors.

FIG. 6 is a block diagram of a combined GPS and wireless positioning system 600 according to an embodiment of the present invention. The system 600 includes satellites 602 a, 602 b, 602 c and 602 d (collectively satellites 602); a wireless access point 604; and a mobile station 606. In general, the GPS equipped mobile station 606 includes a wireless radio to determine its position by combining the information from its GPS receiver with information from other wireless positioning data. The wireless radio may implement various wireless protocols such as cellular, WLAN, Bluetooth®, RFID, UWB, ZigBee®, etc. The wireless positioning data may be obtained with triangulation schemes that use time of arrival or phase with wireless technologies such as WLAN, Bluetooth®, RFID, etc. By combining positional information from multiple sources the effects of shadowing, fading and multipath interference are reduced.

Wireless access points (such as the wireless access point 604) may be deployed in towns and cities. These access points may be equipped with GPS. Thus in addition to providing wireless access to the Internet or to cellular networks, they may also provide GPS assistance data via a GPS assistance manager. Since the location of these access points is usually fixed and known, they may also provide GPS differential information via a GPS differential correction manager.

The wireless access point 604 includes a GPS receiver 610, a GPS assistance manager 612, a GPS differential correction manager 614, and a wireless transmitter and receiver 616.

The mobile station 606 includes a wireless core receiver 620, a GPS core receiver 622, a wireless differential correction data decoder 624, a wireless assistance data decoder 626, a wireless measurement engine 628, a GPS measurement engine 630, a wireless navigation engine 632, a GPS navigation engine 634, and a combined navigation processor 636.

In FIG. 6 the wireless receiver in the access point 604 may be cellular, WLAN (802.11*), Bluetooth®, UWB, RFID, ZigBee®, etc. As we shall see later in FIG. 9 the mobile station may have multiple wireless radios and may combine the information from more than one type of access point.

The wireless access point 604 and components thereof may generally operate as described above regarding the access point 130 (see FIG. 1) or the access point 400 (see FIG. 4). The GPS receiver 610 receives GPS signals from the satellites 602. The GPS assistance manager 612 performs GPS assistance functions. The GPS differential correction manager performs differential GPS functions. The wireless transmitter and receiver 616 communicates with mobile stations such as the mobile station 606.

More specifically, the GPS assistance manager 612 encodes and formats the GPS assistance data based on some specific protocol such as Secure User Plane Location protocol (SUPL). Similarly, the GPS differential correction manager 614 encodes and formats the GPS differential correction data.

The GPS core receiver 622 receives the GPS RF signal from all visible satellites, down-converts the signals, correlates and dispreads the signals using the locally generated codes, and provides the baseband In-phase (I) and Quadrature (Q) symbols to the GPS measurement engine 630.

The GPS measurement engine 630 processes the I and Q symbols and to generate the GPS raw measurements such as the pseudoranges, dopplers, and integrated carrier phase (ρ,

) for all the visible satellites. These raw measurements are then provided to the GPS navigation engine 634.

The GPS navigation engine 634 receives the GPS raw measurements and calculates position, velocity, and time (P,V,T). This may include Kalman filtering for getting better estimates.

The wireless core receiver 620 receives the wireless RF signal, down-converts, demodulates, and decodes the signal. Note that the wireless communication may be based on any standard, e.g., Bluetooth®, ZigBee®, 802.11x, etc. The wireless core receiver 620 provides the baseband I and Q symbols.

The wireless measurement engine 628 receives the I and Q symbols and generates the raw measurements for navigation. Such measurements may include pseudoranges, dopplers, and integrated carrier phases (ρ,

) for all the wireless access points in the region.

The wireless navigation engine 632 receives the raw navigation measurements and calculates position, velocity, and time (P,V,T).

The wireless assistance data decoder 626 and the wireless differential correction data decoder 624 are the peer entities of the GPS assistance manager 612 and the GPS differential correction manager 614, respectively decoding their data.

The combined navigation processor 636 implements various signal processing and optimization algorithms in order to combine different data from the GPS receiver 622 with the data from the wireless receiver 620. Examples of such algorithms include Weighted Least Squares and Extended Kalman Filters. The actual architecture and implementation mechanism of such signal processing algorithms may depend on the type of data provided to the combined navigation processor 636. The following schemes specify the different possibilities of the data types which may be provided to this block. (Note that any combination of these integration schemes may be implemented in various embodiments of the present invention.)

Scheme 1: In this integration scheme, the wireless access point 604 provides GPS assistance data to the mobile station 606. Such assistance data may include reference time, the ID's and ephemerides of the satellites to be tracked, decoded navigation data, etc.

Scheme 2: In this scheme, wireless access point 604 has been provided with its true location and, given its own GPS measured location, can therefore calculate the measured range errors for each of the visible satellites 602. Note that the wireless access point 604 and the wireless terminal 606 are assumed to be relatively close to each other and hence they experience many common error sources, e.g., atmospheric errors. So in this integration scheme, the wireless access point 604 provides its calculated errors to the wireless terminal 606 which may then use them as differential correction terms and cancel out the common errors and achieve better accuracy.

Scheme 3: In this scheme, the final PVT solution of the GPS receiver 622 is provided to the combined navigation processor 636, which may then combine it with the different data coming from the wireless receiver 620.

Scheme 4: In this scheme, the raw GPS measurements such as pseudoranges, dopplers, and carrier phases are provided to the combined navigation processor 636.

Scheme 5: In this scheme, the combined navigation processor 636 receives the actual I and Q symbols directly from the core GPS receiver module 622. To achieve a tight form of integration, an embodiment of the present invention may combine this scheme with Scheme 8, where the I and Q data out of the core wireless receiver 620 are also provided to the combined navigation processor 636.

Scheme 6: In this scheme, the final PVT solution obtained independently by the wireless receiver 620 (e.g., through triangulation using multiple wireless access points) is provided to the combined navigation processor 636, which may then combine it with the different data coming from the GPS receiver 622.

Scheme 7: In this scheme, the raw navigation measurements such as pseudoranges, dopplers, and carrier phases, generated by the wireless receiver 620, are provided to the combined navigation processor 636.

Scheme 8: In this scheme, the combined navigation processor 636 receives the actual I and Q symbols directly from the core wireless receiver module 620.

The embodiment of FIG. 6 shows one access point 614 and one mobile station 606 combining their data. Since each can provide 3 different inputs to the combined navigation processor 636 (marked 638 c, 638 d, 638 e and 638 f, 638 g, 638 h) this creates 3×3=9 possible combinations. For each of these combinations there are 4 cases (assistance data, no assistance data, differential correction, and no differential correction), giving a total of 9×4=36 cases. In the general cases where there are N access points, then the combined navigation processor 636 has a total of 3×(N+1)×4×N possible combinations.

According to another embodiment, the combined navigation processor 636 may be inside the wireless access point 604 instead of the mobile station 606. In such a scenario the signal processing and optimization algorithms for combining different data from the GPS receiver 622 with the data from the wireless receiver 620 is carried out inside the access point 604. This offloads the mobile station 606 from having to perform the processing, but it does require the mobile station 606 to send its data to the access point 604 and the access point 604 to send its processing results back to the mobile station 606. For example, the processor 410 in the access point 400 (see FIG. 4) may implement the functionality of the combined navigation processor 636.

One example of the algorithm implemented by the combined navigation processor 636 unit is an extended Kalman filter (EKF). The EKF algorithm is an iterative process by which a vector of parameters is optimally estimated given a dynamical model and a set of measurements at consecutive time steps. It uses a non-linear filter function that effectively tries to combine the measurements in some optimal fashion in order to obtain the intended estimate.

FIG. 7 is a block diagram of a combined GPS and wireless positioning system 700 according to an embodiment of the present invention. The system 700 includes satellites 702 a, 702 b, 702 c and 702 d (collectively satellites 702); fixed location access points 704 a, 704 b, 704 c and 704 d (collectively access points 704); and a mobile station 706. The satellites 702 and the access points 704 are similar to the satellites 602 and access point 604, for example.

The mobile station 706 includes a wireless core receiver 720, a GPS core receiver 722, a wireless measurement engine 728, a GPS measurement engine 730, a wireless navigation engine 732, a GPS navigation engine 734, and a combined navigation processor 736. These elements are similar to the elements of the system 600 (see FIG. 6) described above.

The mobile station 706 determines its position and navigation by combining the information from its GPS receiver 722 with information from triangulation schemes using the wireless access points 704 (e.g. WLAN, UWB, Bluetooth®, ZigBee®). The combined navigation processor 736 may use information from the fixed location wireless access points 704 that use triangulation schemes with time of arrival or phase. As shown in FIG. 7, four wireless access points 704 with known locations (either because they are immobile, or through GPS) are used to find range information to the mobile station 706. The position calculation can either be computed by one of the access points 704 and sent directly to the combined navigation processor 736 (see dashed line), or the measurement data can be sent by each access point 704 to the mobile station 706 for processing. The combined navigation processor 736 can then combine the triangulation data with the mobile station's GPS receiver data.

One example for combining the measurement data is the Extended Kalman Filter. The equation (

(t_(k) ⁺)=

(t_(k) ⁻)+K_(k)[y[k]−h(

(t_(k) ⁻),t_(k))]) discussed in more detail below shows how the measurement vector y[k] which can include all the measurements is used in the filter to update the estimate of the vector parameter of interest, x, which can include location as a parameter.

In another pending application commonly owned by the assignee of the present application is described a method of using RF signals transmitted from one or more RFID readers to measure times of arrival and locate the position of a tag using triangulation and geometric methods. See U.S. patent application Ser. No. 11/641,624, titled “RFID Location Systems and Methods”, filed 18 Dec. 2006, which is incorporated herein by reference. In another pending application commonly owned by the assignee of the present application is described a method of determining a distance between an RFID reader and an RFID tag by transmitting two or more signals from the reader having two or more frequencies, measuring a phase difference between backscattered signals from the tag, and using the phase difference to determine the distance between the tag and reader. See U.S. patent application Ser. No. 11/641,623, titled “Method and System for Determining the Distance Between an RFID Reader and an RFID Tag using Phase”, filed 18 Dec. 2006, which is incorporated herein by reference. The RFID readers may be fixed location pre-assigned readers or mobile readers with structure to determine their positions such as being equipped with GPS. Thus, RFID readers may be used in a similar fashion as access points to locate a mobile station that has a tag attached to it. This is illustrated in the embodiment of FIG. 8.

FIG. 8 is a block diagram of a combined GPS and wireless positioning system 800 according to an embodiment of the present invention. The system 800 includes satellites 802 a, 802 b, 802 c and 802 d (collectively satellites 802); RFID readers 804 a, 804 b, 804 c and 804 d (collectively RFID readers 804); and a mobile station 806. The satellites 802 are similar to the satellites described previously. The RFID readers 804 are similar to the RFID readers described in the above two co-pending applications that have been incorporated by reference.

The mobile station 806 includes an RFID tag 819, a wireless core receiver 820, a GPS core receiver 822, a wireless measurement engine 828, a GPS measurement engine 830, a wireless navigation engine 832, a GPS navigation engine 834, and a combined navigation processor 836. These elements are similar to the elements of the system 700 (see FIG. 7) described above.

In the system 800, the tagged mobile station 806 determines its position and navigation by combining the information from its GPS receiver 822 with information from triangulation schemes using the RFID readers 804. The RFID readers 804 interrogate the tag 819 attached to the mobile station 806 and then use their wireless connectivity (e.g. WLAN, Bluetooth®) to transmit the measured data or calculated positions (see dashed line in FIG. 8). The calculation may be carried out with one of the readers. The combined navigation processor 836 may then combine this data with the data that the mobile station's GPS receiver 822 has provided.

One example for combining the GPS and RFID measurement data is again the Extended Kalman Filter. Again the equation (

(t_(k) ⁺)=

(t_(k) ⁻)+K_(k)[y[k]−h

(t_(k) ⁻),t_(k))]) described in more detail below can be used where measurement vector y[k] incorporate both GPS and RFID measurement data.

FIG. 9 is a block diagram of a mobile station 906 according to an embodiment of the present invention. The mobile station 906 includes a WLAN core receiver 920 a, a cellular core receiver 920 b, a RFID core receiver 920 c, and a UWB core receiver 920 d (collectively receivers 920); a WLAN differential correction data decoder 924 a, a cellular differential correction data decoder 924 b, a RFID differential correction data decoder 924 c, and a UWB differential correction data decoder 924 d (collectively differential correction data decoders 924); a WLAN assistance data decoder 926 a, a cellular assistance data decoder 926 b, a RFID assistance data decoder 926 c, and a UWB assistance data decoder 926 d (collectively assistance data decoders 926); a WLAN measurement engine 928 a, a cellular measurement engine 928 b, a RFID measurement engine 928 c, and a UWB measurement engine 928 d (collectively measurement engines 928); a WLAN navigation engine 932 a, a cellular navigation engine 932 b, a RFID navigation engine 932 c, and a UWB navigation engine 932 d (collectively navigation engines 932); a GPS core receiver 922; a GPS measurement engine 930; a GPS navigation engine 934; and a combined navigation processor 936.

The mobile station 906 has multiple wireless radios 920. It can therefore communicate with different types of GPS-equipped wireless access points (see FIG. 10) and combine the information from them. The characteristics of these access points differ in terms of their signal frequency, power, signal source location, and protocol. Because of this they exhibit different shadowing, fading and multipath effects and combining their signals may reduce the errors caused by these effects. For example, signals from different locations experience different multi path errors and averaging may reduce the multipath errors. Shadowing is also location dependent so while one access point can experience shadowing others may not. The combining algorithm may use weights based on criteria such as received signal strength indicator (RSSI) or power strength, approximate location, etc. For example, at indoor locations the signals and triangulation methods of WLAN and RFID get more weight than GPS because GPS is limited indoors whereas WLAN and RFID are not. At outdoor locations, however, GPS signals may be weighted more than WLAN and RFID. Note that the access points can have GPS receivers and provide the information they receive to the combined navigation processor 936, or they could use other means such as triangulation (see the embodiment of FIG. 7 or the embodiment of FIG. 8). There may also be hybrid approaches where for example, some RFID readers or WLAN access points can have GPS receivers while others can use triangulation. Access points that have a GPS receiver have the option of providing differential correction or assistance data.

The mobile station 906 may download maps related to its position and may use information in the maps to adjust the weights it applies to the position information it receives. The maps may include interior features (for example, walls) as well as exterior features (for example, buildings or hills). For example, if the mobile station is in a position that would, based on the configuration of the surrounding buildings, be susceptible to multipath interference of GPS signals, the GPS information may receive a reduced weight by the combined navigation processor 936. The maps may be provided from a map server that may be a component of an access point or may be from a map server (for example, connected to the network 140).

The mobile station 906 may also combine assistance data and other information from access points of the same type. This is possible since the wireless communication mechanisms are packet-based and a particular receiver can switch between two access points of the same type. For example, the mobile station may combine the positioning information it is receiving from two or more UWB access points by weighting their information according to various criteria (e.g. signal or power strength, approximate location, etc.). One such criteria is that higher strength signals get larger weights than lower strength signals because they are presumed to be closer to the mobile station. This example may also be applied to other types of access points (e.g. averaging information from two or more access point of type RFID or ZigBee® or WLAN or cellular or Bluetooth®, etc.).

FIG. 10 is a block diagram of access points 1004 and related structure according to an embodiment of the present invention. (Note the connections to FIG. 9.) The WLAN access point 1004 a includes a GPS receiver 1010 a, a GPS assistance manager 1012 a, a GPS differential correction manager 1014 a, and a WLAN transmitter and receiver 1016 a. The cellular tower access point 1004 b includes a GPS receiver 1010 b, a GPS assistance manager 1012 b, a GPS differential correction manager 1014 b, and a cellular transmitter and receiver 1010 b. The RFID reader access point 1004 c includes a GPS receiver 1010 c, a GPS assistance manager 1012 c, a GPS differential correction manager 1014 c, and a RFID transmitter and receiver 1016 c. The UWB access point 1004 d includes a GPS receiver 1010 d, a GPS assistance manager 1012 d, a GPS differential correction manager 1014 d, and a UWB transmitter and receiver 1016 d. These elements are similar to the elements described above with reference to FIG. 6.

The embodiment of FIG. 10 includes separate physical access points for each mode of wireless communication (WLAN, Cellular, RFID, Bluetooth®, ZigBee®, etc.). However, some or all of their functionality may be contained in a single physical access point with only one GPS receiver. Thus, there would be fewer inputs to the combined navigation processor (see FIG. 9). The different radios of the access point, however, could still contribute to triangulation schemes.

One example for combining all the measurement data is again the Extended Kalman Filter. Again the equation (

(t_(k) ⁺)=

(t_(k) ⁻)+K_(k)[y[k]−h

(t_(k) ⁻),t_(k))]) discussed in more detail below can be used where measurement vector y[k] incorporate all the measurement data.

Extended Kalman Filter (EKF) Details

As described above, embodiments of the present invention may implement EKF for combining location information. The EKF consists of two distinguishable processes. One is typically called “measurement update” where the available measurement vector at a time instant is used to update the estimated vector for that time instant. The second is typically called “time update” where the estimated vector is propagated in time to the next time step where a new measurement vector will be available.

Assume the dynamics of the user device is modeled as:

(t)=f(x(t),t)+w(t)

where x(t) is the vector of the parameters to be estimated (e.g., position, velocity, . . . ) and w(t) is a white Gaussian noise vector with covariance matrix Q(t):

E[w(t)w ^(T)(σ)]=Q(t)δ(t−τ)

Also assume that the measurement vector y at time t_(k) can be written as:

y[k]=h(x(t _(k)),t _(k))+v[k]

where v[k] is the measurement noise vector with covariance matrix R_(k). Note that the vector function “h” in the above model depends on the actual type of measurements available to the combined navigation processor (i.e., the different integration schemes described above) and how those measurements relate to the parameters that we want to estimate (e.g., position, velocity).

The EKF algorithm is one way to optimally estimate the vector x given the measurement vector y.

Assume that we have

(t_(k) ⁻) which is the a priori estimate of “x” right before time instant t_(k). One can update the estimate of x at time t_(k) by incorporating the available measurement vector y[k] using the following EKF equation:

(t _(k) ⁺)=

(t _(k) ⁻)+K _(k) [y[k]−h(

(t _(k) ⁻),t _(k))]

where K_(k) is called the measurement update gain at time t_(k) and can be obtained as:

K _(k) =P _(k) ⁻ H _(k) ^(T)(H _(k) P _(k) ⁻ H _(k) ^(T) +R _(k))⁻¹

where the matrix H_(k) is defined as:

$H_{k}:=\left. \frac{\partial{h\left( {{x\left( t_{k} \right)},t_{k}} \right)}}{\partial{x\left( t_{k} \right)}} \right|_{{x{(t_{k})}} = {\overset{)}{x}(t_{\overset{-}{k})}}}$

and the matrix P_(k) ⁻ is the a priori covariance matrix of the estimation error vector right before time instant t_(k).

Now, to complete the estimation process, we need to be able to propagate both the estimated vector as well as the error covariance matrix to the next time step when the next measurement vector will be available.

First, in order to propagate the estimated vector to the next time step, the equation

(t)=f(

(t),t) is integrated for the duration of t_(k)<t<t_(k+1) and using the initial condition x(t_(k))=

(t_(k) ⁺) in order to obtain x(t_(k+1) ⁻).

The error covariance matrix is similarly propagated to the next time step by integrating the equation

(t)=F(t)P(t)+P(t)F^(T)+Q(t) for the same duration of t_(k)<t<t_(k+1) and using the initial condition P(t_(k) ⁺)=P_(k) ⁺. As mentioned earlier, matrix Q is the covariance matrix of the process noise in the user dynamics model and F(t) is defined as:

${{F(t)}:=\left. \frac{\partial{f\left( {{x(t)},t} \right)}}{\partial{x(t)}} \right|_{{x{(t)}} = {\overset{)}{x}{(t)}}}},{t_{k} < t < t_{k + 1}}$

In addition to the embodiments described above, various additional embodiments are contemplated according to aspects of the present invention.

As described above (for example with reference to FIG. 6), the combined navigation processor may be a component of the mobile device. According to a another embodiment, the combined navigation processor may be a component of an access point (for example the access point 130 a of FIG. 1). According to another embodiment, the combined navigation processor may be a component of an assistance server (for example the assistance server 150 of FIG. 1).

Embodiments of the present invention are suitable for power saving environments. For example, when the mobile station 906 includes a Bluetooth® radio and a GPS receiver, if the mobile station 906 is receiving good position information via the Bluetooth® radio, the mobile station 906 may power down its GPS components and compute its position using the position information received via the Bluetooth® radio.

The above description illustrates various embodiments of the present invention along with examples of how aspects of the present invention may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims. 

1-54. (canceled)
 55. A method of determining a position of a mobile device using global positioning system (GPS) signals, the method comprising: receiving, at the mobile device, GPS information from a plurality of GPS satellites, the mobile device experiencing multipath interference from signals received from at least one satellite of said plurality of GPS satellites; selecting a particular access point from a plurality of short range access points comprising WLAN, Bluetooth, UWB, RFID, and ZigBee access points, the particular access point near the mobile device and experiencing a same multipath interference as the mobile device; receiving GPS differential data from the particular short range access point, the GPS differential data from the particular access point comprising a difference between a known distance to said at least one satellite and a distance to said at least one satellite calculated based on GPS information received at the particular access point from said at least one satellite; computing a distance from the mobile device to each of said plurality of satellites based on the GPS information received from said plurality of GPS satellites, the computed distance to said at least one satellite affected by said multipath interference; compensating the effect of the multipath interference in the computed distance from the mobile device to said at least one satellite using said GPS differential data received from the particular access point experiencing the same multipath interference as the mobile station; and computing the position of the mobile device based on said distance from the mobile device to each of said plurality of satellites.
 56. The method of claim 55 further comprising: transmitting said GPS differential data to an assistance server, wherein said assistance server performs computing said position; and receiving said position at said mobile device from the assistance server.
 57. The method of claim 55, wherein the mobile station receives a plurality of time of arrival information from said plurality of access points, the method further comprising: computing the position of the mobile device using triangulation of said plurality of time of arrival information; and combining the position computed based on the distance from the mobile station to each of the plurality of satellites with the position computed based on the triangulation of the plurality of time of arrival information to further compensate for the effect of the multipath interference.
 58. The method of claim 55, wherein the mobile station receives a plurality of phase information from said plurality of access points, the method further comprising: computing the position of the mobile device using triangulation of said plurality of phase information; and combining the position computed based on the distance from the mobile station to each of the plurality of satellites with the position computed based on the triangulation of the plurality of time of arrival information to further compensate for the effect of the multipath interference.
 59. The method of claim 55, wherein the multipath interference is caused by reflections of signals transmitted by satellites on objects near the mobile device and the plurality of access points.
 60. The method of claim 55, wherein the GPS differential data is further for reducing errors due to variations in a speed of radio waves travelling through the earth's atmosphere.
 61. The method of claim 55, wherein the GPS differential data is further for reducing errors due to satellite clock inaccuracies.
 62. The method of claim 55 further comprising: receiving a plurality of assistance data from at least one of said plurality of access points; and computing a combined assistance data from said plurality of assistance data, wherein computing said position further comprises using said combined assistance data.
 63. The method of claim 62, wherein computing said position comprises: computing said position by executing a weighted least squares process on said GPS information and said combined assistance data.
 64. The method of claim 62, wherein computing said position comprises: computing said position by executing an extended Kalman filter process on said GPS information and said combined assistance data.
 65. The method of claim 62, wherein computing said position comprises: computing said position based on said GPS information and said combined assistance data using a first set of weights in an indoor location and a second set of weights in an outdoor location.
 66. The method of claim 62, wherein computing said position comprises: computing said position based on said GPS information having a first weight and said combined assistance data having a second weight.
 67. The method of claim 62, wherein said GPS information includes a final position, velocity and time solution, wherein computing said position comprises: computing said position based on said final position, velocity and time solution having a first weight and said combined assistance data having a second weight.
 68. The method of claim 62, wherein said GPS information includes raw GPS measurements, wherein computing said position comprises: computing said position based on said raw GPS measurements having a first weight and said combined assistance data having a second weight.
 69. The method of claim 62, wherein said GPS information includes in-phase and quadrature symbols, wherein computing said position comprises: computing said position based on said in-phase and quadrature symbols having a first weight and said combined assistance data having a second weight.
 70. The method of claim 62, wherein said combined assistance data includes a final position, velocity and time solution, wherein computing said position comprises: computing said position based on said final position, velocity and time solution having a first weight and said GPS information having a second weight.
 71. The method of claim 62, wherein said combined assistance data includes raw navigation measurements, wherein computing said position comprises: computing said position based on said raw navigation measurements having a first weight and said GPS information having a second weight.
 72. The method of claim 62, wherein said combined assistance data includes in-phase and quadrature symbols, wherein computing said position comprises: computing said position based on said in-phase and quadrature symbols having a first weight and said GPS information having a second weight.
 73. The method of claim 55, wherein said selecting the particular access point, said receiving the GPS differential data from the particular short range access point, said computing the distance from the mobile device to each of said plurality of satellites, said compensating the effect of the multipath interference, and said computing the position of the mobile device are performed at the mobile station.
 74. An apparatus for performing position determination using global positioning system (GPS) signals and compensating for effects of multipath signal interference, the apparatus comprising: a GPS receiver for receiving GPS information from a plurality of GPS satellites; a wireless communication module, communicatively coupled to said GPS receiver, the wireless communication module for receiving a plurality of GPS differential data from a plurality of short range access points comprising WLAN, Bluetooth, UWB, RFID, and ZigBee access points, the GPS differential data received from each access point comprising a difference between a known distance to said at least one satellite and a distance to said at least one satellite calculated based on GPS information received at the access point from said at least one satellite; and a navigation processor, communicatively coupled to said GPS receiver and said wireless communication module, the navigation processor for: selecting a particular access point from the plurality of access points, the selected particular access point near said apparatus and experiencing a same multipath signal interference as said apparatus; computing a distance from the apparatus to each of said plurality of GPS satellites based on the GPS information received from said plurality of GPS satellites, the computed distance to at least one satellite in said plurality of satellites affected by said multipath signal interference; compensating the effect of the multipath signal interference in the computed distance from the apparatus to said at least one satellite using said GPS differential data received from the particular access point experiencing the same multipath interference as the mobile station; and computing a position of the apparatus based on said distance from the apparatus to each of said plurality of satellites. 